<?php
// +----------------------------------------------------------------------------
// | Tke团队版权所属 [三十年河东三十年河西,莫欺少年穷.!]
// +----------------------------------------------------------------------------
// | Copyright (c) 2014 http://www.itdaodan.com All rights reserved.
// +----------------------------------------------------------------------------
// | Author: PHP@妖孽 <dino_ma@163.com>
// +----------------------------------------------------------------------------
class Aes{
	
	private $key='jjhh^&*%^#$%#$%^&*&(*'; //密钥名称
	
	private $val=''; //密钥值
	
	public function __construct(){
			$this->out	=	'';
	}
	/**
	 * @todo   removePKCS7加密方法
	 * @param  string $instr
	 * @return string
	 */
	public function removePKCS7($instr){
		$imax = strlen($instr);
		for($i = 0 ; $i < $imax ; $i++){
			if(ord($instr[$i])>16)
			$this->out .=$instr[$i];
		}
		return $this->out;
	}
	
	/**
	 * @todo   paddingPKCS7加密方法
	 * @param  string $data
	 * @return string
	 */
	public function paddingPKCS7($data) {
		$block_size = 16;
		$padding_char = $block_size - (strlen($data) % $block_size);
		$data .= str_repeat(chr($padding_char),$padding_char);
		return $data;
	}
	
	/**
	 * @todo   aes加密方法
	 * @param  string or array $data
	 * @return string
	 */
	public function aesEncode($data){
		return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key, $this->paddingPKCS7($data), MCRYPT_MODE_ECB,$this->val));
	}
	
	/**
	 * @todo   aes解密方法
	 * @param  array or string $data
	 * @return array or string
	 */
	public function aesDecode($data){
		return  mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key,base64_decode($data), MCRYPT_MODE_ECB, $this->val);
	}
	
	/**
	 * @todo	jjhhAes加密方法
	 * @param   string or array $data
	 * @return  string or array
	 */
	public function jjhhAesEncode($data){
		return self::aesEncode($data);
	}
	
	/**
	 * @todo  jjhhAes解密方法
	 * @param string or array $data
	 */
	public function jjhhAesDecode($data){
		return self::removePKCS7(self::aesDecode($data));
	}
 

}